package com.fac.service;

import com.fac.dto.EquipmentAvailableQueryDTO;
import com.fac.dto.EquipmentCreateDTO;
import com.fac.dto.EquipmentPageQueryDTO;
import com.fac.dto.EquipmentUpdateDTO;
import com.fac.result.PageResult;
import com.fac.vo.EquipmentVO;

/**
 * 设备服务接口
 */
public interface EquipmentService {

    /**
     * 创建设备
     *
     * @param equipmentCreateDTO 设备创建DTO
     * @return 创建的设备VO
     */
    EquipmentVO create(EquipmentCreateDTO equipmentCreateDTO);

    /**
     * 分页查询设备
     *
     * @param equipmentPageQueryDTO 分页查询条件
     * @return 分页结果
     */
    PageResult pageQuery(EquipmentPageQueryDTO equipmentPageQueryDTO);

    /**
     * 更新设备
     *
     * @param equipmentId 设备ID
     * @param equipmentUpdateDTO 设备更新DTO
     * @return 更新后的设备VO
     */
    EquipmentVO update(Long equipmentId, EquipmentUpdateDTO equipmentUpdateDTO);

    /**
     * 查询可租赁设备列表
     *
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult listAvailable(EquipmentAvailableQueryDTO queryDTO);
}
